The fundamental problem posed by human-computer interaction is that computer data exists in a strictly logical world and computer output is limited by the input received from the user. In contrast to the starkly logical operations of computers, humans exist in a world of abstraction, because of this, the ones and zeros stored in the computer memory must be linked to an interface which allows a human being to process and understand the information stored within the computer.
Because of the fundamental difference in “thought” processes between computers and humans, poor interface design leads to a great deal of user frustration: the user receives outputs from the machine which are not what they hoped to receive. This GIGO (garbage-in garbage-out) issue, is not the fault of the machine itself, which does exactly as instructed, but is rather a shortcoming of the machine's interface which failed to allow the user to interact with the underlying logic in a manner that the user understood.